<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        /* 常用方法汇总：
                every、filter、find、findIndex、forEach、indexOf、join、lastIndexOf、map、pop、push、reduce、reverse、shift、slice、some、sort、splice、unshift、concat


                copyWithin、at、entries、keys、values、fill、flat、includes 

                常见效果：
                  排序:冒泡、快速排序
                  去重:至少掌握3中方法
        */

        var arr = [1, 2, 3, 4, 5, 6];
        var arr1 = ["a", "b", "c", "d", "e", "f"];
        var arr2 = [19, 18, 17, 20, 23, 24]

        //forEach :单纯遍历数组，数组的值一次进入回调函数中（没有返回值）
        arr.forEach(function (item, index) { });
        arr.forEach((item, index) => { });
        //map ：映射数组，数组的值依次进入回调函数，当次回调函数的返回值就是对应的映射数组对应的值（返回和原数组长度一样的数组）
        arr.map(function (item) { return item + 1 });
        arr.map(item => item + 1);
        //some: 判断数组中 有任意一个满足条件的就返回ture
        arr2.some(function (item, index) { return item < 18 })
        arr2.some(item => item < 18);
        //every：判断数组中 所有都的都满足条件就返回ture
        arr2.every(function (item, index) { return item > 18 })
        arr2.every(item => item > 18)
        //filter 过滤，返回数组。返回所有满足条件的元素组成的数组
        arr2.filter(function (item, index) { return item > 20 })
        arr2.filter(item => { item > 20 })
        //find 查找数组中第一个满足条件的元素并返回值
        arr2.find(function (item, index) { return item > 20 })
        arr2.find(item => item > 20)
        //findIndex 查找 查找第一个满足条件的元素 返回他的下标
        arr2.findIndex(function (item, index) { return item > 20 })
        arr2.findIndex(item => item > 20)
        //reduce 累加 返回累加后的值（最后一次回调函数返回的值）
        /* 参数1:回调函数
                    - 参数1：上一次回调函数的返回值（第一次是初始值）
                    - 参数2：本次的数组元素item
                    - 参数3：本次数组元素的下标index
                    - 参数4：原数组的引用
                - 参数2：累加的初始值（如果没有设置初始值，则默认数组的第一个值就是初始值） */

        arr2.reduce(function (before, item, index) { return before + item }, 0)
        arr2.reduce((before, item, index) => { before + item })     
        //includes 判断某个元素是否存在数组中
        arr2.includes(20)
    </script>
</body>

</html>